package aip.project.service;

import java.util.List;
import java.util.Map;
import org.slim3.datastore.Datastore;
import org.slim3.util.BeanUtil;

import aip.project.meta.ListaCategorieMeta;
import aip.project.model.ListaCategorie;
import aip.project.model.Prodotto;

import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.Transaction;


public class ListaCategorieService {

    private ListaCategorieMeta meta = ListaCategorieMeta.get();

    public List<ListaCategorie> getListaCategorie(){
        return Datastore.query(meta).sort(meta.nome.asc).asList();
    }

    public List<Prodotto> getProdotti(Key k){
        return Datastore.get(ListaCategorie.class, k).getProdottiListRef().getModelList();
    }


    public Key addCategoria(Map<String, Object> input) {
        ListaCategorie c = new ListaCategorie();
        BeanUtil.copy(input,c);
        Transaction tx = Datastore.beginTransaction();
        Datastore.put(c);
        tx.commit();
        return c.getKey();
    }

    public void removeCategoria(Key k){
        Datastore.deleteAll(k);
        Datastore.delete(k);
    }
}
